//导入axios包
import axios from "axios";
//导入nprogress依赖包
import NProgress from 'nprogress'
//将nprogress的css导入
import 'nprogress/nprogress.css'
NProgress.configure({
   easing: "ease-in-out",
   speed: 300,
   trickeSpeed: 300,
})
//axios进行全局设置基础路径
//axios.defaults.baseURL=process.env.VUE_APP_URL
//axios设置过期时间
//axios.defaults.timeout=10000

const service=axios.create({
  baseURL:process.env.VUE_APP_URL,
  timeout:10000
})
/*
  设置请求拦截器
  axios.interceptors.request.use(参数1,参数2)
  参数1：请求成功的时候的回调函数[必写]
  参数2：请求失败的时候的回调函数
*/
service.interceptors.request.use((config)=>{
    //开启动画
    NProgress.start()
    //设置请求头信息
    config.headers.Authorization="Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI2MGQxNzQ3NTg4MDk0YWFjYjQyOTJlYjIiLCJpYXQiOjE2OTQ3NTg0MzQsImV4cCI6MTY5NDc2MDIzNH0.ckZbPaPr0BDhN90AYFakbMCPtJspdUvBeIoXQB5aJi4"
    return config
},(err)=>{
    console.log(err);
    return Promise.reject(err)
})

/**
 * 相应拦截器的配置
 * axios.interceptors.response.use(参数1，参数2)
 * 参数1：正常响应的回调
 * 参数2：错误响应的回调
 */
service.interceptors.response.use((response)=>{
  //结束动画
  NProgress.done()
  return response.data
},(err)=>{
  if(err.response){
    switch(err.response.status){
      case 401:
        console.log('token失效');
        break;
      case 500:
        console.log('服务端有误');
        break;
    }
  }
  return Promise.reject(err)
})
//将axios对象导出
export default service
